package it.scambiocorse.rowmapper;

import it.scambiocorse.model.SorgenteType;
import it.scambiocorse.utils.Utils;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.log4j.Logger;
import org.springframework.jdbc.core.RowMapper;

public class SorgenteRowMapper implements RowMapper {
	final Logger logger = Logger.getLogger(getClass());

  public Object mapRow(ResultSet rs, int row) throws SQLException {
  	String metodo ="mapRow(...)";
  	
  		SorgenteType st = null;
    try {
    		st = new SorgenteType();    
	    	if (row > -1) { // PROVENGO DALLA TABELLA
	    		logger.debug(metodo+" Inizio il mappaggio di SorgenteType con i campi della TABELLA");
	
	    		st.setIdSorgente(rs.getInt("id_sorg"));
	    		st.setIdUserInse(rs.getInt("id_user_inse"));
	    		st.setNome(Utils.isValid(rs.getString("nome_sorg")) ? rs.getString("nome_sorg") : "");
	    		st.setDataInse(rs.getTimestamp("data_inse"));
	
	    		
	    	} else {
	        	// PROVENGO DALLA VIEW (ServizioRowMapper)
	        	logger.debug(metodo+" Inizio il mappaggio di SorgenteType con i campi della VIEW");
	    		st.setIdSorgente(rs.getInt("id_sorgente"));
	    		st.setIdUserInse(rs.getInt("id_user_inse_sorg"));
	    		st.setNote(rs.getString("note"));
	    		st.setNome(Utils.isValid(rs.getString("nome_sorg")) ? rs.getString("nome_sorg") : "");
	    		st.setDataInse(rs.getTimestamp("data_inse_sorg"));
	    	}
	    	
    	
	} catch (SQLException e) {
		if (e.getSQLState().equals("S0022")) {
			logger.debug("Colonna non trovata, mappaggio non necessario");
		} else {
			throw e;
		}
	}

    
    return st;
  }
}
